Method for determining the structure of a hybrid computing system

ABSTRACT

A method comprises measuring the execution time T 1  for a problem to be solved with a program being run by a single processor, measuring the execution time TM and TS of MIMD and SIMD program fragments being run by a single processor and a single accelerator correspondingly, determining the specific acceleration ρ of the execution time for an SIMD program fragment being run by a single accelerator in comparison with the execution time for the fragment being run by a single processor, determining a portion of the execution time for an MIMD fragment being run by a single processor and a portion of the execution time for an SIMD fragment being run by a single processor and adjusting the quantity of processors or accelerators comprised in a hybrid computing system structure according to the data obtained.

TECHNICAL FIELD

The invention relates to the field of computer engineering and can be used for creating hybrid computing systems, containing an MIMD component, composed of a single or multiple processors, and an SIMD component, composed of a single or multiple arithmetic accelerators.

PRIOR ART

An MIMD-SIMD hybrid system (hereinafter hybrid system) is a combination of SIMD and MIMD components working in parallel. Such a parallel architecture is able to develop a higher computing speedup in comparison with a single processor, rather than a corresponding MIMD architecture is able to develop taken alone.

The closest prototype to the invention as claimed by its essential features is a method for determining the structure of an MIMD-SIMD hybrid computing system (rf. www.elsevier.com/locate/parco Parallel Computing 29 (2003) 21-36, MIMD-SIMD hybrid system—towards a new low cost parallel system, Leo Chin Sim, Heiko Schroder, Graham Leedham). The method comprises measuring the execution time T₁ for a problem to be solved with a program being run by a single processor, measuring the execution time T_(M) and T_(S) (alternatively T₁ and T_(SIMD) correspondingly) of MIMD and SIMD program fragments being run by a single processor and a single accelerator correspondingly, determining the specific acceleration ρ (alternatively X) of the execution time for an SIMD program fragment being run by a single accelerator in comparison with the execution time for the same fragment being run by a single processor and adjusting the quantity of accelerators comprised into a hybrid computing system structure according to the data obtained, estimating the computing speedup, developed by the system.

The drawback of the method above is inefficient application of hybrid computing system performance capabilities caused by a non-adjustable quantity of the processors comprised in a hybrid system structure, that excludes the ability of a higher speedup developing for certain class of computing processors in comparison with the systems wherein the quantity of the accelerators is adjustable.

DISCLOSURE

The task the invention is to solve, consists in providing a method, allowing to create a hybrid computing system structure, taking into account the requirements to the computing process being run.

The technical result lies in reducing the computing process execution time with providing a hybrid computing system structure, taking into account certain process peculiarities.

Said technical result is obtained due to the fact that in the course of the method as claimed for determining the structure of a hybrid computing system including an MIMD component containing at least a single processor and an SIMD component containing at least a single arithmetic accelerator, wherein the method comprises measuring the execution time T₁ for a problem to be solved with a program being run by a single processor, measuring the execution time T_(M) and T_(S) of MIMD and SIMD program fragments being run by a single processor and a single accelerator correspondingly, determining the specific acceleration ρ of the execution time for an SIMD fragment being run by a single accelerator in comparison with the execution time for the fragment being run by a single processor and adjusting the quantity of processors or accelerators comprised into a hybrid computing system structure according to the data obtained, whereas contrary to the prototype it is determined a portion φ of the execution time for an MIMD fragment being run by a single processor and a portion 1-φ of the execution time for an SIMD fragment being run by a single processor relative to the execution time of the program being run by a single processor; the ratio of the execution time portion for an SIMD fragment being run by a single processor and the execution time portion for an MIMD fragment being run by a single processor is compared with the specific acceleration value

$\rho = \frac{\left( {1 - \varphi} \right)T_{1}}{T_{s}}$ of the execution time for an SIMD fragment being run by a single accelerator in comparison with the execution time for an SIMD fragment being run by a single processor, wherein for

$\rho > \frac{1 - \varphi}{\varphi}$ the quantity of MIMD component processors is being increased, and for

$\rho < \frac{1 - \varphi}{\varphi}$ the quantity of SIMD component accelerators is being increased.

Performing in total all the characteristics of the method as claimed enables to provide a hybrid computing system structure, wherein for SIMD fragment execution time being greater, the SIMD component performance is increased due to the increased quantity of accelerators, or for MIMD fragment execution time being greater, the MIMD component performance is increased due to the increased quantity of processors. As a result a system with the structure obtained develops computing speedup according to certain computing process peculiarities, exceeding the speedup, developed by the system with the structure taking not into account said peculiarities.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1—shows a hybrid computing system structure;

FIG. 2—shows a diagram for determining the execution time portion of an MIMD fragment and the execution time portion of an SIMD fragment and determining the computing speedups for said fragments.

EMBODIMENT OF THE INVENTION

A hybrid computing system contains q processors 1, forming an MIMD component and running an MIMD computing program fragment, and r arithmetic accelerators 2, forming an SIMD component and executing an SIMD computing program fragment.

Any MIMD-class computing systems may be used as an MIMD component; an MIMD component processor is a separate MIMD-class system processing element [Tsylker B. Y., Orlov S. A. Computer and System Administration. S.-Pb, 2004.]

The examples of SIMD components suitable for the method to be implemented are commonly known arithmetic accelerators by NVIDIA and AMD, the Cell processors by IBM, the ClearSpeed processors by Intel, as well as the Systola 1024 arithmetic accelerator, used in the closest prototype. Their common feature is presence of multiple “simple” arithmetic units, having in general a substantially higher performance achieved in specific program fragments in comparison with the processor.

The method as claimed to be implemented:

-   -   the time T₁ required for a single processor to solve a problem         through the whole program execution is measured by means of a         system timer.     -   the time T_(M) required for a single processor for MIMD fragment         execution is measured by means of a system timer.     -   the time T_(S) required for a single accelerator for SIMD         fragment execution is measured by means of a system timer.     -   based on the values obtained the portion of the execution time

$\varphi = \frac{T_{M}}{T_{1}}$ for an MIMD fragment and the specific acceleration value

$\rho = \frac{\left( {1 - \varphi} \right)T_{1}}{T_{s}}$ are determined.

-   -   the ratio of the time portion for the computing being run by a         single accelerator and the time portion for the computing being         run by a single processor is compared with the specific         acceleration value ρ. For

$\rho > \frac{1 - \varphi}{\varphi}$ the quantity of processors in the computing system is being increased. For

${\rho < \frac{1 - \varphi}{\varphi}},$ the quantity of accelerators is being increased.

The efficiency of the method as claimed is proved by the following ratios, disclosed with respect to parallel programming through weak scaling for a constant size of a problem (Gustafson's law [e.g., rf. Tsylker B. Y., Orlov S. A. Computer and System Administration. S.-Pb, 2004. pp. 488-490]) and with respect to parallel programming through strong scaling for a size of a problem to be measured (Amdahl's law [e.g., rf. Tsylker B. Y., Orlov S. A. Computer and System Administration. S.-Pb, 2004, cTp. 486-488]).

For a problem to be solved by a single processor an interval of time T₁ is required.

It is supposed that the process for solving the same problem by a hybrid computing system, comprising a single processor and a single accelerator, requires a time interval, calculated according to the formula: T _(1,1) =T _(M) +T _(S),  (1)

-   -   wherein T_(M)=T₁φ—the execution time for an MIMD fragment being         run by a single processor;     -   0≦φ≦1—a portion of the execution time for an MIMD fragment;

$T_{s} = {\left( {1 - \varphi} \right)\frac{T_{1}}{\rho}}$ —the execution time for an SIMD fragment being run by a single accelerator;

-   -   ρ>1—the specific acceleration of the execution time for an SIMD         fragment developed due to an accelerator being applied in         comparison with a processor.

The stated computing process decomposition with respect to parallel programming through strong scaling for q processors 1 and a single accelerator 2 is shown in the FIG. 2.

The computing time for weak scaling being run by the system comprising q processors 1 and a single accelerator 2 is calculated according to the formula:

$\begin{matrix} {{\overset{\sim}{T}}_{q,1} = {{T_{1} \cdot \varphi} + {T_{1} \cdot \left( {1 - \varphi} \right) \cdot {\frac{q}{\rho}.}}}} & (2) \end{matrix}$

For the system comprising 1 processor 1 and r accelerators 2 it is valid as follows:

$\begin{matrix} {{\overset{\sim}{T}}_{1,r} = {{T_{1} \cdot \varphi \cdot r} + {T_{1} \cdot \left( {1 - \varphi} \right) \cdot {\frac{1}{\rho}.}}}} & (3) \end{matrix}$

Similarly the computing time values T_(q,1) and T_(1,r) are calculated for strong scaling being run by the system comprising q processors 1 and a single accelerator 2 and the one comprising a single processor 1 and r accelerators 2.

The computing time estimation results are listed in the Table 1.

The values of the parameters ρ and φ are determined for an elementary computer, comprising a single processor and a single accelerator. They are referred to as primary parameters.

The speedup for weak scaling being run by the system comprising q processors 1 and a single accelerator 2 is calculated according to the formula:

$\begin{matrix} {{\overset{\sim}{K}}_{q,1} = {\frac{T_{1}q}{{\overset{\sim}{T}}_{q,1}}.}} & (4) \end{matrix}$

Inserting the equation

$\begin{matrix} {{{\overset{\sim}{T}}_{q,1} = {{T_{1}\varphi} + {{T_{1}\left( {1 - \varphi} \right)}\frac{q}{\rho}}}},} & (5) \end{matrix}$

into the formula (4) it is found:

$\begin{matrix} {{\overset{\sim}{K}}_{q,1} = \frac{q}{\varphi + {\left( {1 - \varphi} \right)\frac{q}{\rho}}}} & (6) \end{matrix}$

Evidently, for q→∞ the value

${\overset{\sim}{K}}_{q,1} = {\frac{\rho}{1 - \varphi}.}$ is maximal

The inequation {tilde over (

)}_(q,1)≧q to be valid (i.e., in order the accelerators 2 being applied should prove to be advantageous in comparison with the quantity of the processors 1 being simply increased), it is required to fulfill the condition:

$\begin{matrix} {\frac{q}{\varphi + {\left( {1 - \varphi} \right)\frac{q}{\rho}}} \geq {q.}} & (7) \end{matrix}$

It is valid for q≦ρ.

For a system comprising a single processor and r accelerators the speedup is calculated according to the formula:

$\begin{matrix} {{\overset{\sim}{K}}_{1,r} = {\frac{T_{1}r}{{T_{1}\varphi\; r} + {{T_{1}\left( {1 - \varphi} \right)}\frac{1}{\rho}}} = {\frac{r}{{\varphi\; r} + {\left( {1 - \varphi} \right)\frac{1}{\rho}}}.}}} & (8) \end{matrix}$

Evidently,

${\overset{\sim}{K}}_{1,r} = \left. {\frac{1}{\varphi}\mspace{14mu}{for}\mspace{14mu} r}\rightarrow{\infty.} \right.$

The value

${{\overset{\sim}{K}}_{1,r} \geq r},{{{for}\mspace{14mu} r} \leq {\frac{1}{\varphi} - {\frac{1 - \varphi}{\varphi\;\rho}.}}}$

The speedup for a system comprising q processors and r accelerators, wherein q=r, is calculated according to the formula:

$\begin{matrix} {{\overset{\sim}{K}}_{q,q} = {\frac{T_{1}q}{{T_{1}\varphi} + {{T_{1}\left( {1 - \varphi} \right)}\frac{1}{\rho}}} = {\frac{q}{\varphi + \frac{1 - \varphi}{\rho}}.}}} & (9) \end{matrix}$

Generally K_(q,r)=K_(m,1) for q>r, wherein

$m = \frac{q}{r}$ and K_(q,r)=K_(1,n), for q<r, wherein

${n = \frac{r}{q}};$ q and r being supposed as such, that m or n—are integers.

Further estimation will be given to the conditions wherein {tilde over (T)}_(q,1)≦{tilde over (T)}_(1,q), the increase in the quantity of the processors 1 is more efficient than the increase in the quantity of the accelerators 2.

Evidently, for this purpose the inequation

$\begin{matrix} {{{{T_{1}\varphi} + {{T_{1}\left( {1 - \varphi} \right)}\frac{q}{\rho}}} \leq {{T_{1}\varphi\; q} + {{T_{1}\left( {1 - \varphi} \right)}\frac{1}{\rho}}}},} & (10) \end{matrix}$ ought to be fulfilled, being valid for

$\rho \geq {\frac{1 - \varphi}{\varphi}.}$

For

$\rho = \frac{1 - \varphi}{\varphi}$ the increase in the quantity of the processors or the increase in the quantity of accelerators equally affect the computing process time.

Thus, the efficiency of a component being introduced is determined from the primary properties of the computing process.

The speedup for strong scaling being run by the system comprising q processors and a single accelerator is calculated according to the formula:

$\begin{matrix} {K_{q,1} = {\frac{T_{1}}{T_{q,1}} = {\frac{T_{1}}{{T_{1}\frac{\varphi}{q}} + {{T_{1}\left( {1 - \varphi} \right)}\frac{1}{\rho}}}.}}} & (11) \end{matrix}$

Wherefrom

$\begin{matrix} {K_{q,1} = {\frac{q}{\varphi + {\left( {1 - \varphi} \right)\frac{q}{\rho}}}.}} & (12) \end{matrix}$

For q→∞ the value

$\begin{matrix} {K_{q,1} = {\frac{\rho}{\left( {1 - \varphi} \right)}.}} & (13) \end{matrix}$ is maximal.

For ρ>q it is valid

_(q,1)>q.

For a system comprising a single processor and r accelerators it is found:

$\begin{matrix} {K_{1,r} = {\frac{T_{1}}{{T_{1}\varphi} + {{T_{1}\left( {1 - \varphi} \right)}\frac{1}{r\;\rho}}} = {\frac{r}{{\varphi\; r} + \frac{1 - \varphi}{\rho}}.}}} & (14) \end{matrix}$

For r→∞ it results:

$\begin{matrix} {K_{1,r} = {\frac{1}{\varphi}.}} & (15) \end{matrix}$

The expression

_(1,r)≦r is valid for

$\begin{matrix} {r \leq {\frac{1}{\varphi} - {\frac{1 - \varphi}{\varphi \cdot \rho}.}}} & (16) \end{matrix}$

The speedup

_(q,r) developed by a system comprising q processors and r accelerators, wherein q=r, is calculated according to the formula:

$\begin{matrix} {K_{q,q} = {\frac{q}{\varphi + \frac{1 - \varphi}{\rho}}.}} & (17) \end{matrix}$

Evidently, K_(q,r)=K_(m,1), for q>r, wherein

$m = \frac{q}{r}$ and K_(q,r)=K_(1,n), for q<r, wherein

${n = \frac{r}{q}};$ q and r being supposed as such, that m or n—are integers.

Further estimation will be given to the parameters of the process wherein for strong scaling it is efficient to increase the quantity of the processors. Evidently, the condition

$\begin{matrix} {{{T_{1}\frac{\varphi}{q}} + {{T_{1}\left( {1 - \varphi} \right)}\frac{1}{\rho}}} \leq {{T_{1}\varphi} + {T_{1}{\frac{1 - \varphi}{q\;\rho}.}}}} & (18) \end{matrix}$ ought to be fulfilled, being valid for

$\rho \geq {\frac{1 - \varphi}{\rho}.}$

For

$\rho = {\frac{1 - \varphi}{\varphi}.}$ the increase in the quantity of the processors or the increase in the quantity of accelerators equally affect the computing process time

Thus, the efficiency of computing process accelerating by increasing the quantity of processors or accelerators both for strong scaling and for weak scaling depends on the values of the parameters φ and ρ.

The computing speedup values found for strong scaling and weak scaling are listed in the Table 2.

It is to be noted that the values for both modes are identical under the same quantitative and qualitative computing conditions. For both modes it is efficient to increase the quantity of the processors involved, whereas

$\rho > {\frac{1 - \varphi}{\varphi}.}$ being valid.

Exemplary Embodiment of the Method

Further it is determined a hybrid computing system structure for solving the problems on determining the Morse potential values used in molecular dynamics.

The computing time required for a single processor for 55×55×55 lattice spacing size of a problem was measured with a system timer, resulting in T₁=22,96 sec. Parallel programming was executed through weak scaling.

The computing time required for a hybrid system to solve the same problem wherein the system comprising q=1 processors and r=1 accelerators, was measured by means of a system timer, resulting in T₁=9.87 sec, wherein the execution time for an MIMD fragment being run by a single processor resulted in T_(M)=7.07 sec, and the execution time for an SIMD fragment being run by a single accelerator resulted in T_(S)=2.80 sec.

The values measured the parameters

$\varphi = {{\frac{T_{m}}{T_{s}} \approx {0.31\mspace{14mu}{and}\mspace{14mu}\rho}} = {\frac{\left( {1 - \varphi} \right)T_{1}}{T_{s}} \approx 5.67}}$ are found.

Since

$\rho > \frac{1 - \varphi}{\varphi}$ it is reasonable to increase the quantity of the processors involved in the hybrid system structure for the program being run.

For example, for q=2 processors and r=1 accelerators involved according to the formula (2) it is found T_(2,1)=12.70 sec. The experimental value measured with system timer is T_(2,1)=13.22 sec.

The theoretical and experimental speedup values are {tilde over (K)}_(2,1)=3.62 and {tilde over (K)}_(2,1)=3.47 correspondingly.

If according to the prototype a hybrid system comprising q=1 processors and r=2 accelerators is used for solving the problem, then T_(1,2)=16.9c, {tilde over (K)}_(1,2)=2.7.

As it is seen from the example observed the method as claimed has provided a hybrid computing system, enabling to solve said problem on determining the potential values 1.3 times faster as compared to the system according to the prior art.

Similarly, the formulae (2) and (6) and the experimental values being used the hybrid system comprising q=4 processors and r=1 accelerators demonstrates ability to solve said problem 1.67 times faster as compared to the system comprising q=1 processors and r=4 accelerators according to the prior art.

In summary, the method as claimed provides a hybrid computing system structure taking into account the peculiarities of the computing process being run. In its turn it enables to reduce the computing time and to speed up solving application problems.

TABLE 1 Computing Time Estimation Results Hybrid Computing Weak Scaling Strong Scaling System Structure ${\overset{\sim}{T}}_{q,1} = {{T_{1}\varphi} + {{T_{1}\left( {1 - \varphi} \right)}\frac{q}{\rho}}}$ $T_{q,1} = {{T_{1}\frac{\varphi}{q}} + {{T_{1}\left( {1 - \varphi} \right)}\frac{1}{\rho}}}$ q processors, a single accelerator ${\overset{\sim}{T}}_{1,r} = {{T_{1}{\varphi r}} + {{T_{1}\left( {1 - \varphi} \right)}\frac{1}{\rho}}}$ $T_{1,r} = {{T_{1}\varphi} + {{T_{1}\left( {1 - \varphi} \right)}\frac{1}{r\;\rho}}}$ a single processor, r accelerators

TABLE 2 Speedup Values Hybrid Computing Weak Scaling Strong Scaling System Structure ${\overset{\sim}{Κ}}_{q,1} = \frac{q}{\varphi + {\left( {1 - \varphi} \right)\frac{q}{\rho}}}$ $Κ_{q,1} = \frac{q}{\varphi + {\left( {1 - \varphi} \right)\frac{q}{\rho}}}$ q processors, 1 accelerator ${{\overset{\sim}{Κ}}_{q,1} = \frac{\rho}{1 - \varphi}},\left. {{for}\mspace{14mu} q}\rightarrow\infty \right.$ ${Κ_{q,1} = \frac{\rho}{1 - \varphi}},\left. {{for}\mspace{14mu} q}\rightarrow\infty \right.$ {tilde over (K)}_(q,1) > q, for q < ρ K_(q,1) > q, for q < ρ ${\overset{\sim}{Κ}}_{1,r} = \frac{r}{{\varphi\; r} + \frac{1 - \varphi}{\rho}}$ $Κ_{1,r} = \frac{r}{{\varphi\; r} + \frac{1 - \varphi}{\rho}}$ 1 processor, r accelerators ${{\overset{\sim}{Κ}}_{1,r} = \frac{1}{\varphi}},\left. {{for}\mspace{14mu} r}\rightarrow\infty \right.$ ${Κ_{1,r} = \frac{1}{\varphi}},\left. {{for}\mspace{14mu} r}\rightarrow\infty \right.$ ${{\overset{\sim}{Κ}}_{r,1} \geq r},{{{for}\mspace{14mu}\rho} > \frac{1 - \varphi}{1 - {\varphi r}}}$ ${Κ_{r,1} \geq r},{{{for}\mspace{14mu}\rho} > \frac{1 - \varphi}{1 - {\varphi r}}}$ {tilde over (K)}_(q,r) = {tilde over (K)}_(m,1) K_(q,r) = K_(m,1) q processors, {tilde over (K)}_(q,r) = {tilde over (K)}_(1,n) K_(q,r) = K_(1,n) r accelerators; ${{{for}\mspace{14mu} q} > r},{{{{then}\mspace{14mu} m} = \frac{q}{r}};}$ ${{{for}\mspace{14mu} q} \leq r},{{{then}\mspace{14mu} n} = \frac{r}{q}},$ wherein q and r being such, that m or n - are integers. ${\overset{\sim}{Κ}}_{q,1} \geq {{\overset{\sim}{Κ}}_{1,r}\mspace{14mu}{for}\mspace{14mu}\rho} \geq \frac{1 - \varphi}{\varphi}$ $Κ_{q,1} \geq {Κ_{1,r}\mspace{14mu}{for}\mspace{14mu}\rho} \geq \frac{1 - \varphi}{\varphi}$ 

The invention claimed is:
 1. A method for determining the structure of a hybrid computing system including an Multiple Instruction, Multiple Data (MIMD) component containing at least a single processor and a Single Instruction, Multiple Data (SIMD) component containing at least a single arithmetic accelerator, wherein the method comprises measuring the execution time T₁ for a problem to be solved with a program being run by a single processor, measuring the execution time T_(M) and T_(S) of MIMD and SIMD program fragments being run by a single processor and a single accelerator correspondingly, determining the specific acceleration ρ of the execution time for an SIMD program fragment being run by a single accelerator in comparison with the execution time for the fragment being run by a single processor and adjusting the quantity of processors or accelerators comprised into a hybrid computing system structure according to the data obtained, determining a portion φ of the execution time for an MIMD fragment being run by a single processor and a portion 1-φ of the execution time for an SIMD fragment being run by a single processor relative to the execution time of the program being run by a single processor; the ratio of the execution time portion for an SIMD fragment being run by a single processor and the execution time portion for an MIMD fragment being run by a single processor is compared with the specific acceleration value ρ of the execution time for an SIMD fragment being run by a single accelerator in comparison with the execution time for an SIMD fragment being run by a single processor, wherein for $\rho > \frac{1 - \varphi}{\varphi}$ the quantity of MIMD component processors is being increased, and for $\rho < \frac{1 - \varphi}{\varphi}$ the quantity of SIMD component accelerators is being increased. 